1) Field of the Invention
This invention pertains to the field of communication networks, and, more specifically, to a method of link aggregation and selecting communication paths for communicating messages between a sending communication device and a receiving communication device in a communication network.
2) Description of the Related Art
Link Aggregation is a method of communication used between communication devices whereby multiple communication paths are set up between pairs of such communication devices. Multiple communication paths are used to (1) provide more bandwidth than one such path can provide, or (2) to provide redundancy so that communication can continue even when some (but not all) of the paths are nonfunctional, or (3) both.
Messages are passed between two such communication devices. One device is the sending device; the other is the receiving 5 device. Each message is passed from the sending communication device to the receiving communication device via one of the multiple aggregated communication paths.
For each message that must pass between the two communication devices, the sending communication device must choose one of the communication paths connecting the sending communication device to the receiving communication device.
Two examples of particular communication devices for which this technique of link aggregation is useful are (1) an Ethernet switching bridge, and (2) a router. In these cases, the 15 communication paths might be Ethernet links, which might be implemented using coaxial cable, copper wire pair technology, optical fiber, or radio links. However, the technique is generally applicable to other types of devices, and other types of communication paths.
Also the same technique can be used independently between multiple pairs of communication devices simultaneously, including the case where a single communication device simultaneously participates in multiple sets of multiple communication paths. The same technique is also useful for link methods other than Ethernet including, for example, fiber distributed data interface (FDDI), integrated services digital network (ISDN), asynchronous transfer mode (ATM), and X.25.
For each message that must pass between the two communication devices, the sending communication device must choose one of the communication paths connecting the sending communication device to the receiving communication device. This choice should be made with due consideration of any or all of the following factors:
Some of the multiple communication paths may be permanently nonfunctional.
Some of the multiple communication paths may be temporarily nonfunctional.
The communication paths may be non-homogeneous, with some paths providing higher bandwidth than others.
Some communication paths may be more heavily utilized than others, and for a given message it may be desirable to choose a path based on communication path availability. This is a form of load balancing.
The communication paths may have different propagation speeds, and it may be desirable for related messages (e.g., part of a same xe2x80x9cconversationxe2x80x9d) to be passed over the same communication path to preserve the order of the messages.
The last factor is of particular interest, because there are many communication devices that either require this characteristic, or that operate more efficiently when the communication has this characteristic. The described methodology is intended to support any or all of these characteristics, as desired.
Previous approaches to solving this problem have been based on a static determination of the communication path based on information about the messages. In effect, this methodology honors only the fifth consideration (and possibly the first consideration) of the above list. In these methods, the message information that identifies a particular xe2x80x9cconversationxe2x80x9d is used to statically compute a specific communication path number, and all such messages are always sent via that particular path. If the communication path is nonfunctional for some temporary reason, then the message is lost. There is no consideration of whether a different communication path would have been a better choice for some dynamic reason.
Accordingly, it would be advantageous to provide a communication path selection methodology which takes account of any or all of the factors outlined above for selecting a path for passing a message. It would also be advantageous to provide a communication path selection method which is more dynamic and adaptive to changing needs and conditions. Other and further objects and advantages will appear hereinafter.
The present invention comprises a system and method of link aggregation and path selection in a communication network.
In one aspect of the invention, a sending communication device evaluates all links to a target receiving communication device and selects a best path for each message based on available message parameters. The sending communication device computes an index into a path selection table from the message parameters for each message. Each index identifies one of the available communication paths by which that particular message should be sent.
In another aspect of the invention, an entry generator assigns the best available communication path to each index produced from the message parameters. The method assures that messages belonging to a same conversation are sent by a same communication path to ensure that such messages are received in the proper order. The method also dynamically evaluates the availability of each functional path and globally optimizes the distribution of messages among the available communication paths subject to applicable constraints.